namespace JustinAngel.MindwaveSensor.WP8
{
    /// <summary>
    /// Represents the current state of the Mindwave sensor as it relates to Bluetooth connectivity, 
    /// Data retrival and error conditions.
    /// </summary>
    public enum MindwaveServiceState
    {
        /// <summary>
        /// Not connected to Mindwave Mobile and no connection was ever attempted. 
        /// Also used when a connection was esteblished and then disconnected. 
        /// </summary>
        NotConnected, 

        /// <summary>
        /// Indicates that a connection is being attempted.
        /// PeerFinder is looking for paired devices and attempting to open a socket.  
        /// </summary>
        Connecting,

        /// <summary>
        /// A Bluetooth Socket has been esteblished but no data has been recieved yet. 
        /// </summary>
        ConnectedWithNoDataYet,

        /// <summary>
        /// Data has been recieved but data quality isn't perfect. 
        /// </summary>
        ConnectedWithUnreliableData,

        /// <summary>
        /// A connection has been esteblished and high-quality data is being recieved.  
        /// </summary>
        ConnectedWithData,

        /// <summary>
        /// A connection was attempted and wasn't successful. 
        /// Likely causes are Bluetooth isn't on, the device couldn't be found or the device isn't paired. 
        /// </summary>
        FailedConnection,

        /// <summary>
        /// An unexpected error occured while reading the bluetooth device. 
        /// </summary>
        FailedDuringExecution
    }
}